﻿@namespace SE.PO.CInterface.Web.Pages.DB.ActiveAlarm
@page "/db/active-alarms"
@using SE.PO.CInterface.Web.Clients
@using SE.PO.CInterface.DBProtocols.ActiveAlarms
@using AutoMapper
@inject ActiveAlarmClient Client
@inject INotificationService Notice
@inject IMapper Mapper
<PageContainer Title="活动告警">
    <Breadcrumb>
        <Breadcrumb>
            <BreadcrumbItem>首页</BreadcrumbItem>
            <BreadcrumbItem>数据库协议</BreadcrumbItem>
            <BreadcrumbItem>活动告警</BreadcrumbItem>
        </Breadcrumb>
    </Breadcrumb>
    <Content>
        <p>
            下级SC将告警存储到数据库中，每种状态的演变，下级SC均产生一条记录插入数据库，每一个完整的告警演变流程，所有产生的告警记录的告警序号一致。涉及到的数据表为D_ActiveAlarm。该数据库表的记录由下级SC负责存储，上级SC则根据D_ActiveAlarm中的ID字段的变化来定期同步（上级SC与下级SC约定ID最大值为20亿，请下级SC厂家注意根据此ID字段的增长情况进行数据库维护）。
        </p>
        <p>
            上级SC负责定期将两天前的数据删除，删除机制如下：在保证活动告警表中至少存储一条某监控点对象的记录的前提下，以最大的告警发生时间为基准，删除比该时间小的该对象所有记录。
        </p>
        <p>
            新接口库首次启用，发送同步告警指令，由下级SC将D_ActiveAlarm表清除，并重新复制一份当前告警信息到D_ActiveAlarm表中，由上级SC进行同步；之后由上级SC对D_ActiveAlarm表进行同步处理，维持上级SC与下级SC告警一致。
        </p>
    </Content>
    <ChildContent>
        <Card>
            <Row Gutter="24">

                <GridCol Span="24">
                    <Button OnClick="@DeleteSelectedRows" Type="danger" Style="margin-bottom:16px">
                        清除全部
                    </Button>
                    <Table @ref="_table"
                           TItem="ActiveAlarmDto"
                           ScrollY="900px"
                           Loading="@_loadingData"
                           DataSource="@_source"
                           Total="_total"
                           @bind-PageIndex="_pageIndex"
                           @bind-PageSize="_pageSize"
                           OnChange="OnChange"
                           Size="TableSize.Small">
                        <ColumnDefinitions>
                            @* <PropertyColumn Width="300" Title="设备名称" Property="c => c.DeviceEquipment"/> *@
                            <PropertyColumn Width="300" Title="信号Id" Property="c => c.SignalId"/>
                            <PropertyColumn Width="300" Title="信号名称" Property="c => c.SignalName"/>
                            <PropertyColumn Title="告警发生时间" Property="c => c.AlarmTime"/>
                            <PropertyColumn Title="告警等级" Property="c => c.AlarmLevelDisplayName"/>
                            <PropertyColumn Title="告警状态" Property="c => c.AlarmStatus"/>
                            <PropertyColumn Title="告警触发时值" Property="c => c.AlarmValue"/>
                        </ColumnDefinitions>
                    </Table>
                </GridCol>
            </Row>

        </Card>
    </ChildContent>
</PageContainer>